package com.im.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.im.service.common.Result;
import com.im.service.domain.dto.ImChatDTO;
import com.im.service.domain.entity.ImChat;
import com.im.service.domain.query.ChatHistoryQuery;
import com.im.service.domain.vo.ChatHistoryVO;
import com.im.service.domain.vo.ChatVO;
import org.jim.core.ImChannelContext;
import org.jim.core.packets.ChatBody;

import java.util.List;

/**
 * <p>
 * 聊天列表 服务类
 * </p>
 *
 * @author 刘志强
 * @since 2024-07-04
 */
public interface ImChatService extends IService<ImChat> {

    /**
     * 我的聊天
     *
     * @return
     */
    Result<List<ChatVO>> myChat();

    /**
     * historyByTargetId
     *
     * @param query
     * @return
     */
    Result<ChatHistoryVO> historyByTargetId(ChatHistoryQuery query);

    /**
     * 创建会话
     *
     * @param chatDTO
     * @return
     */
    Result createChat(ImChatDTO chatDTO);

    /**
     * 移除会话
     *
     * @param id
     */
    void removeChat(Long id);

    /**
     * 会话处理
     *
     * @param chatBody
     */
    void chatProcessing(ChatBody chatBody, ImChannelContext imChannelContext);

}
